package com.mall.db.api;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.mall.db.mapper.PmsProductAttributeMapper;
import com.mall.pojo.PmsProductAttribute;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.List;

@DubboService
public class PmsProductAttributeAmpl implements PmsProductAttributeApi {

    @Autowired
    private PmsProductAttributeMapper pmsProductAttributeMapper;

    //根据id查询
    @Override
    public List<PmsProductAttribute> selectById(Long id) {
        LambdaQueryWrapper<PmsProductAttribute> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(PmsProductAttribute::getProductAttributeCategoryId, id);
        return pmsProductAttributeMapper.selectList(wrapper);
    }

    //添加商品属性信息
    @Override
    public void create(PmsProductAttribute pmsProductAttribute) {
        pmsProductAttributeMapper.insert(pmsProductAttribute);
    }

    //批量删除商品属性
    @Override
    public void delete(List<Integer> ids) {
        LambdaQueryWrapper<PmsProductAttribute> wrapper = new LambdaQueryWrapper<>();
        wrapper.in(PmsProductAttribute::getId, ids);
        pmsProductAttributeMapper.delete(wrapper);
    }

    //根据分类查询属性列表或参数列表
    @Override
    public Page<PmsProductAttribute> list(Integer cid, Integer pageNum, Integer pageSize, Integer type) {
        Page<PmsProductAttribute> page = new Page<>(pageNum, pageSize);
        LambdaQueryWrapper<PmsProductAttribute> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(PmsProductAttribute::getProductAttributeCategoryId, cid);
        wrapper.eq(PmsProductAttribute::getType, type);
        return pmsProductAttributeMapper.selectPage(page, wrapper);
    }

    //修改商品属性信息
    @Override
    public void update(Integer id, PmsProductAttribute pmsProductAttribute) {
        LambdaQueryWrapper<PmsProductAttribute> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(PmsProductAttribute::getId, id);
        pmsProductAttributeMapper.update(pmsProductAttribute, wrapper);
    }

    //查询单个商品属性
    @Override
    public PmsProductAttribute select(Integer id) {
        return pmsProductAttributeMapper.selectById(id);
    }


}
